==== 保険会社のベンチマーク ====
(CoIL Challenge 2000の和訳)
=== 前置き ===
オランダのデータマイニング企業の[[http://www.smr.nl|Sentient Machine Research]]が保有し提供しているこのデータは、実際のビジネスデータに基づいている。非営利目的および教育目的の使用のみが許諾されている。その他の目的で使用する際には、Peter van der Putten, info@smr.nlに問い合わせること。
このデータはCoILチャレンジ2000データマイニングコンペティションで用いられた。このコンペティションへの参加者たちの論文は、[[http://www.wi.leidenuniv.nl/~putten/library/cc2000/|the TIC 2000 homepage]]に収められている。
=== 参考文献 ===
P. van der Putten and M. van Someren (eds). CoIL Challenge 2000: The Insurance Company Case.
Published by Sentient Machine Research, Amsterdam. Also a Leiden Institute of Advanced Computer Science Technical Report 2000-09. June 22, 2000.
=== ファイル ===
== TICDATA2000.txt ==
学習、予測モデルの検証、また問題の記述に用いるデータであり、5822人分の顧客レコードが収められている。一つのレコードは86の属性(フィールド、または変数)からなり、 前半の1-43は社会人口学的な属性、後半の44-86は商品の契約状況(44-86)を表す。社会人口学的なデータは、郵便番号(zip code)から導かれている。5822人の中で、同じ郵便番号を持つエリアに住む顧客は、同じ社会人口学的な属性を持っている。86番目の属性 "CARAVAN:Number of mobile home policies" が目的変数である。
== TICEVAL2000.txt ==
契約を予測するためのデータであり、4000人分の顧客レコードが収められている。TICDATA2000.txtと同じフォーマットだが、最後の変数だけが欠けている。このコンペティションの参加者は、4000人分の予測結果のみを提出することを求められている。すべてのデータファイルは、タブ区切りのフォーマットである。
== TICTGTS2000.txt ==
評価のためのターゲットである。(?)
=== データの説明 ===
[[http://kdd.ics.uci.edu/databases/tic/tic.data.html|tic.data.txt]]からの要約。(上と重複)
* CoIL 2000 Challengeで用いられた保険会社の顧客に関するデータ。86個の変数は、契約状況(V44-V85)と社会人口統計学的な変数(V1-V43)を含んでいる。この調査は "Can you predict who would be interested in buying a caravan insurance policy and give an explanation why?" という問いに答えるように集められた。
* このデータはオランダのデータマイニング会社Sentinent Machine Researchから提供され、現実のビジネスの問題に基づいている。学習用データ(ticdata2000.txt)は5000レコードでcaravan insurance policyの契約の有無(V86)を含んでおり、検証用データ(ticeval2000.txt)は4000レコードで契約の有無(V86)は含んでいない。検証用データの正解は、CoIL 2000 Challengeの開催時には公開されていなかったが、現在はテストデータ(tictest2000.txt)として公開されている。
* V1-V43のうち、コード化が指定されていない変数はすべて、郵便番号の一桁目のエリアを指している。たとえばV30が9ならばその顧客は郵便番号が9で始まるエリアに家を借りていることを、V31が5ならば郵便番号が5のエリアに持ち家があることを意味する。職業、社会層などもすべて、該当するエリアの箇所が郵便番号の一桁目で埋まっている。
== 変数 ==
[[http://kdd.ics.uci.edu/databases/tic/dictionary.txt|dictionary.txt]]からの抜粋と要約、の日本語版。
^変数^分類^メモ^
|V1|顧客分類2|L0でコード化されている、数字の大きさに意味なし|
|V2|住居数|大きいほど住む箇所が多い|
|V3|世帯構成員数の平均|人数|
|V4|世帯構成員の平均年齢|L1でコード化されている、年齢|
|V5|顧客分類1|L2でコード化されている、数字の大きさに意味なし|
|V6-V9|宗教|L3でコード化されている、V6+V7+V8+V9は9から12の間。それぞれの宗教を信じる割合?|
|V10-V13|結婚|場所を表す変数, 例えばV10が0ならば無し?|
|V14-V15|世帯の大きさ|L3でコード化されている、なぜかV14+V15は10以下。割合?|
|V16-V18|教育水準|L3でコード化されている、なぜかV16+V17+V18はほぼ10、それぞれの年数?割合?|
|V19-V24|職業|L3でコード化されている、なぜかV19+V20+V21+V22+V23+V24は9から13の間|
|V25-V29|社会層|L3でコード化されている、なぜかV25+V26+V27+V28+V29は9から12の間|
|V30-V31|住居|L3でコード化されている、なぜかV30+V31は9か10|
|V32-V34|自動車|L3でコード化されている、なぜかV32+V33+V34は9から11の間|
|V35-V36|健康保険|L3でコード化されている、なぜかV35+V36は9か10|
|V37-V41|収入|L3でコード化されている、なぜかV37+V38+V39+V40+V41は9から13の間|
|V42|平均収入|L3でコード化されている|
|V43|購買力|L3でコード化されている、1から8の間。|
|V44-V64|各種保険支払い額|L4でコード化|
|V65-V85|各種保険契約件数|件数|
メモの確認用のコード。
table((tic.learn$V16+tic.learn$V17+tic.learn$V18))
table((tic.learn$V19+tic.learn$V20+tic.learn$V21+tic.learn$V22+tic.learn$V23+tic.learn$V24))
table((tic.learn$V25+tic.learn$V26+tic.learn$V27+tic.learn$V28+tic.learn$V29))
table(tic.learn$V30+tic.learn$V31)
table(tic.learn$V32+tic.learn$V33+tic.learn$V34)
table(tic.learn$V35+tic.learn$V36)
table(tic.learn$V37+tic.learn$V38+tic.learn$V39+tic.learn$V40+tic.learn$V41)
== 変数詳細 ==
^Nr^Name^Description Domain^
|V1|MOSTYPE|Customer Subtype see L0|
|V2|MAANTHUI|Number of houses 1 - 10|
|V3|MGEMOMV|Avg size household 1 - 6|
|V4|MGEMLEEF|Avg age see L1|
|V5|MOSHOOFD|Customer main type see L2|
|V6|MGODRK|Roman catholic see L3|
|V7|MGODPR|Protestant ...|
|V8|MGODOV|Other religion|
|V9|MGODGE|No religion (無宗教)|
|V10|MRELGE|Married (既婚)|
|V11|MRELSA|Living together (同居)|
|V12|MRELOV|Other relation (その他)|
|V13|MFALLEEN|Singles (独身)|
|V14|MFGEKIND|Household without children (子供のいない世帯)|
|V15|MFWEKIND|Household with children (子供のいる世帯)|
|V16|MOPLHOOG|High level education (高等教育)|
|V17|MOPLMIDD|Medium level education (中等教育)|
|V18|MOPLLAAG|Lower level education (初等教育)|
|V19|MBERHOOG|High status|
|V20|MBERZELF|Entrepreneur|
|V21|MBERBOER|Farmer (農業)|
|V22|MBERMIDD|Middle management (中間管理職)|
|V23|MBERARBG|Skilled labourers (熟練労働者)|
|V24|MBERARBO|Unskilled labourers (非熟練労働者)|
|V25|MSKA|Social class A|
|V26|MSKB1|Social class B1|
|V27|MSKB2|Social class B2|
|V28|MSKC|Social class C|
|V29|MSKD|Social class D|
|V30|MHHUUR|Rented house|
|V31|MHKOOP|Home owners|
|V32|MAUT1|1 car (保有車1台)|
|V33|MAUT2|2 cars (保有車2台)|
|V34|MAUT0|No car (保有車なし)|
|V35|MZFONDS|National Health Service|
|V36|MZPART|Private health insurance|
|V37|MINKM30|Income < 30.000|
|V38|MINK3045|Income (収入) 30-45.000|
|V39|MINK4575|Income (収入) 45-75.000|
|V40|MINK7512|Income (収入) 75-122.000|
|V41|MINK123M|Income (収入) >123.000|
|V42|MINKGEM|Average income (平均収入)|
|V43|MKOOPKLA|Purchasing power class|
|V44|PWAPART|Contribution (契約高) private third party insurance see L4|
|V45|PWABEDR|Contribution (契約高) third party insurance (firms) ...|
|V46|PWALAND|Contribution (契約高) third party insurane (agriculture)|
|V47|PPERSAUT|Contribution (契約高) car policies|
|V48|PBESAUT|Contribution (契約高) delivery van policies|
|V49|PMOTSCO|Contribution (契約高) motorcycle/scooter policies|
|V50|PVRAAUT|Contribution (契約高) lorry policies|
|V51|PAANHANG|Contribution (契約高) trailer policies|
|V52|PTRACTOR|Contribution (契約高) tractor policies|
|V53|PWERKT|Contribution (契約高) agricultural machines policies |
|V54|PBROM|Contribution (契約高) moped policies|
|V55|PLEVEN|Contribution (契約高) life insurances|
|V56|PPERSONG|Contribution (契約高) private accident insurance policies|
|V57|PGEZONG|Contribution (契約高) family accidents insurance policies|
|V58|PWAOREG|Contribution (契約高) disability insurance policies|
|V59|PBRAND|Contribution (契約高) fire policies|
|V60|PZEILPL|Contribution (契約高) surfboard policies|
|V61|PPLEZIER|Contribution (契約高) boat policies|
|V62|PFIETS|Contribution (契約高) bicycle policies|
|V63|PINBOED|Contribution (契約高) property insurance policies|
|V64|PBYSTAND|Contribution (契約高) social security insurance policies|
|V65|AWAPART|Number of (契約口数) private third party insurance 1 - 12|
|V66|AWABEDR|Number of (契約口数) third party insurance (firms) ...|
|V67|AWALAND|Number of (契約口数) third party insurane (agriculture)|
|V68|APERSAUT|Number of (契約口数) car policies|
|V69|ABESAUT|Number of (契約口数) delivery van policies|
|V70|AMOTSCO|Number of (契約口数) motorcycle/scooter policies|
|V71|AVRAAUT|Number of (契約口数) lorry policies|
|V72|AAANHANG|Number of (契約口数) trailer policies|
|V73|ATRACTOR|Number of (契約口数) tractor policies|
|V74|AWERKT|Number of (契約口数) agricultural machines policies|
|V75|ABROM|Number of (契約口数) moped policies|
|V76|ALEVEN|Number of (契約口数) life insurances|
|V77|APERSONG|Number of (契約口数) private accident insurance policies|
|V78|AGEZONG|Number of (契約口数) family accidents insurance policies|
|V79|AWAOREG|Number of (契約口数) disability insurance policies|
|V80|ABRAND|Number of (契約口数) fire policies|
|V81|AZEILPL|Number of (契約口数) surfboard policies|
|V82|APLEZIER|Number of (契約口数) boat policies|
|V83|AFIETS|Number of (契約口数) bicycle policies|
|V84|AINBOED|Number of (契約口数) property insurance policies|
|V85|ABYSTAND|Number of (契約口数) social security insurance policies|
|V86|CARAVAN|Number of (契約口数) mobile home policies 0 - 1|
== 各変数のコーディング ==
L0:分類を表す数字なので、大小関係に意味がなく、名義尺度である。そのままでは説明変数にならない。
^Value^Label^
|1|High Income, expensive child|
|2|Very Important Provincials|
|3|High status seniors|
|4|Affluent senior apartments|
|5|Mixed seniors|
|6|Career and childcare|
|7|Dinki's (double income no kids)|
|8|Middle class families|
|9|Modern, complete families|
|10|Stable family|
|11|Family starters|
|12|Affluent young families|
|13|Young all american family|
|14|Junior cosmopolitan|
|15|Senior cosmopolitans|
|16|Students in apartments|
|17|Fresh masters in the city|
|18|Single youth|
|19|Suburban youth|
|20|Etnically diverse|
|21|Young urban have-nots|
|22|Mixed apartment dwellers|
|23|Young and rising|
|24|Young, low educated |
|25|Young seniors in the city|
|26|Own home elderly|
|27|Seniors in apartments|
|28|Residential elderly|
|29|Porchless seniors: no front yard|
|30|Religious elderly singles|
|31|Low income catholics|
|32|Mixed seniors|
|33|Lower class large families|
|34|Large family, employed child|
|35|Village families|
|36|Couples with teens 'Married with children'|
|37|Mixed small town dwellers|
|38|Traditional families|
|39|Large religous families|
|40|Large family farms|
|41|Mixed rurals|
L1:大きさが年齢の順なので、そのまま説明変数に使える。
|1|20-30 years|
|2|30-40 years|
|3|40-50 years|
|4|50-60 years|
|5|60-70 years|
|6|70-80 years|
L2:数字は分類を表すだけなので、連続尺度でも順序尺度でもなく、名義尺度。そのままでは説明変数にならない。
|1|Successful hedonists|
|2|Driven Growers|
|3|Average Family|
|4|Career Loners|
|5|Living well|
|6|Cruising Seniors|
|7|Retired and Religeous|
|8|Family with grown ups|
|9|Conservative families|
|10|Farmers|
L3:順序尺度。このまま連続尺度の説明変数として用いる。
|0|0%|
|1|1 - 10%|
|2|11 - 23%|
|3|24 - 36%|
|4|37 - 49%|
|5|50 - 62%|
|6|63 - 75%|
|7|76 - 88%|
|8|89 - 99%|
|9|100%|
L4: 順序尺度。今回はこのまま連続尺度の変数として用いる。
|0|f 0|
|1|f 1 - 49|
|2|f 50 - 99|
|3|f 100 - 199|
|4|f 200 - 499|
|5|f 500 - 999|
|6|f 1000 - 4999|
|7|f 5000 - 9999|
|8|f 10.000 - 19.999|
|9|f 20.000 - ?|
== データのダウンロードと読み込み ==
演習で用いる保険データは、大学内からであれば、Rに次の命令を実行すれば読み込める。
Sys.setenv("http_proxy"="http://130.153.8.16:8080/")
tic.learn <- read.table("http://kdd.ics.uci.edu/databases/tic/ticdata2000.txt")
tic.eval <- read.table("http://kdd.ics.uci.edu/databases/tic/ticeval2000.txt")
tic.test <- read.table("http://kdd.ics.uci.edu/databases/tic/tictgts2000.txt")
tic.eval <- cbind(tic.eval, tic.test)
colnames(tic.eval)[86] <- "V86"
rm(tic.test)
学外もしくは自宅等であれば、最初の1行(Sys.setenvで始まる行)は不要。
== 参考 ==
kernlabパッケージに、加工済みのデータが入っていて、それを使うこともできる。
install.packages(c("kernlab"), dependencies=TRUE)
tic.learn <- ticdata[1:5822,]
tic.eval <- ticdata[5823:9822,]