Datamining för handeln 3

Ämne: Avancerad Analys

Inledning

Ytterligare en frågeställning som kan uppstå är att lista ut vilken uppsättning kundattribut beskriver den generiska köparen av en viss produkt. Detta är användbart för kupongkampanjer eller andra riktade reklaminsatser (on-the fly rabatter när man drar medlemskortet i kassan osv)

Varning

Eftersom  – och jag blir inte trött av att upprepa detta – data mining är INTERAKTIV och ITERATIV, får man göra löpande bedömning om huruvida kampanjerna blir lyckade och med jämna mellanrum justera klassificeringen av kunder .

Data

Foodmart.sql.  Vi vill kunna förutse om kunden köper dyr ost av en viss tillverkare eller inte. Det finns totalt 10000 kunder i foodmart och drygt 5500 av dem handlat under 1997. Enligt siffror i transaktionsdata är de absolut dyraste ostarna i sortimentet  av Carlson-märke; köpta av ungefär r 9% av 1997 års kunder.

Vi kommer att rikta vår kupongkampanj med Carlson-ostar till de andra 4500 ”inaktiva kunder”

Träningsdatat ut som csv:

SELECT cus.customer_id, FLOOR(datediff(’1997-01-01′,birthdate)/365) as age, yearly_income,gender, num_children_at_home,
education, occupation, houseowner, num_cars_owned, CHEESE from
customer cus
join
(select cu.customer_id,
MAX(case when pc.product_subcategory =’Cheese’ and p.brand_name =’Carlson’ then 1 else 0 end) as CHEESE from  customer cu
join sales_fact_1997 f
on f.customer_id = cu.customer_id
join product p
on p.product_id = f.product_id
join product_class pc
on pc.product_class_id = p.product_class_id
group by cu.customer_id
) x
on x.customer_id =cus.customer_id

En snapshot av uttaget data

customer_id,age,yearly_income,gender,num_children_at_home,education,occupation,houseowner,num_cars_owned,CHEESE
3,86,”$50K – $70K”,F,1,”Bachelors Degree”,Professional,Y,2,0
5,45,”$30K – $50K”,F,0,”Partial College”,Manual,N,3,0
6,54,”$70K – $90K”,F,0,”Bachelors Degree”,Professional,Y,3,0
36,81,”$10K – $30K”,M,0,”Partial High School”,”Skilled Manual”,N,1,1

Det vi ser framför oss är ett s.k. classification problem. Vi ska alltså bygga en modell som tränas på datat ovan och sedan skorar vi de ”inaktiva” kunderna med modellen.

För omväxlingens skull gör vi detta i KNIME, ett open source datamining verktyg med ett grafiskt GUI där man kan designa hela dataflöden.