==== 保険会社のベンチマーク ==== (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,]