{
  "fetched_at": "2026-10-20T00:21:29Z",
  "source_url": "https://www.kaggle.com/competitions/customer-spend-model/data",
  "pages": [
    {
      "name": "rules",
      "content": "\n\t<!-- Begin Base Rules -->\n    <h3>One account per participant</h3>\n<P> Team names should begin with the program name, i.e., IMC, IEMS or MSIT. For example, \"MSIT Super miners\" or \"IMC Data crunchers\".\n    <p>You cannot sign up to Kaggle from multiple accounts and therefore you cannot submit from multiple accounts.</p>\n    <h3>No private sharing outside teams</h3>\n    <p>\n        Privately sharing code or data outside of teams is not permitted.\n        It's okay to share code if made available to all participants on the forums.\n    </p>\n    <h3>Team Mergers</h3>\n    <p>Team mergers are not allowed in this competition.</p>\n\n    \t<!-- End Base Rules -->\n<p>The rules page is a bit special: it will auto-update the text based on the parameters of the competition. The rules you need to add here are any additional rules relating to dataset usage. You may also put grading information here.</p>",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "data-description",
      "content": "There are three files.\n<UL>\n<LI> customer.csv: This gives the dependent variable for the training set\nonly. You should find 16,781 records plus a header.\n<UL>\n<LI> id: unique customer identifier\n<LI> train: 1 for training set and 0 for test set\n<LI> logtarg: dependent variable. It is the \\textbf{natural} logarithm of the\nspending in response to an offer mailed on 11/25/2014.\n</UL>\n\n<LI>orders.csv: all orders prior to 11/25/2014 for training (n=5,551) and test\n(n=11,230) sets. You should find 353,687 records plus a header.\n<UL>\n<LI>id: unique customer identifier\n<LI>orddate: order date\n<LI>ordnum: order number\n<LI>category: category identifier,\n1=fiction; 3=classics; 5=cartoons; 6=legends; 7=philosophy;\n8=religion; 9=psychology; 10=linguistics; 12=art; 14=music;\n17=art reprints;\n19=history; 20=contemporary history; 21=economy; 22=politics; 23=science;\n26=computer science; 27=traffic, railroads; 30=maps; 31=travel guides;\n35=health; 36=cooking; 37=learning; 38=games and riddles; 39=sports;\n40=hobby; 41=nature/animals/plants; 44=encyclopedia; 50=videos, DVDs;\n99=non books\n<LI> qty: quantity\n<LI> price: price paid\n</UL>\n<LI> rollup.R: this is example R code that shows you how to roll up\nthe order file, merge the result with the customer file, estimate a\nregression model, and write out a csv file that can be uploaded to\nKaggle.\n</UL>\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Description",
      "content": "<p>On Nov 25, 2014 a leading German book retailer sent out an offer to its customers. They observed the purchases that were made in response to this offer. Your task is to use information that was available to the company as of Nov 25, 2014 to construct a machine learning model that predicts the spending in response to the offer.</p>\n<P> The orders.csv file has the transaction history that was known as of Nov 24, 2014, which will be called the base period. You should create feature variables from this data set. The customer.csv contains the responses to the offer in the future period and has two variables, a customer id and logtarg which is the natural logarithm of the amount spent plus 1. Thus, those who did not respond will have a value of log(0+1) = 0. You have response data for about 5K records. You have data from the base period for these 5K training customers and about 11K in a test sample. Estimate your models using the 5K training sample, then apply the model to the test set with the predict function in R. Submit csv files with only the test-set customers to Kaggle with two variables, the customer id and your predicted log amount.</P>\n<P>You will be evaluated on the RMSE of your predictions on a test set. If y_i = logtarg is the spend and y_i (hat) is your prediction of logtarg, the criterion is:\n\n<p>\\[ \\mathrm{RMSE} = \\sqrt{\\frac{1}{n} \\sum_{i=1}^n (y_i - \\hat{y})^2 } \\]</p>\n",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Evaluation",
      "content": "<p>The evaluation pages describes how submissions will be scored and how students should format their submissions. You don't need a sub-title at the top (the page title appears above). For an example of a high quality evaluation page, see the 2013 KDD Cup page, which we have copied here:</p>\r\n<hr />\r\n<p>The evaluation metric for this competition is <a href=\"https://www.kaggle.com/wiki/MeanFScore\"> Mean F1-Score</a>. The F1 score, commonly used in information retrieval, measures accuracy using the statistics precision p and recall r. Precision is the ratio of true positives (tp) to all predicted positives (tp + fp). Recall is the ratio of true positives to all actual positives (tp + fn). The F1 score is given by:</p>\r\n<p>\\[ F1 = 2\\frac{p \\cdot r}{p+r}\\ \\ \\mathrm{where}\\ \\ p = \\frac{tp}{tp+fp},\\ \\ r = \\frac{tp}{tp+fn} \\]</p>\r\n<p>The F1 metric weights recall and precision equally, and a good retrieval algorithm will maximize both precision and recall simultaneously. Thus, moderately good performance on both will be favored over extremely good performance on one and poor performance on the other.</p>\r\n<h2>Submission Format</h2>\r\n<p><strong>For every author in the dataset</strong>, submission files should contain two columns: AuthorId and DuplicateAuthorIds. DuplicateAuthorIds should be a space-delimited list. Every AuthorId counts as his/her own duplicate, and every duplicate should be listed under each of its respective ids. For example, if you suspect author A, B, and C are the same, you should list (A,A B C), (B,B A C), (C,C A B).</p>\r\n<p>The file should contain a header and have the following format:</p>\r\n<pre>AuthorId,DuplicateAuthorIds<br />1,1<br /><span style=\"font-size: 14px; line-height: 1.4em;\">8,8<br />9,9 10<br /></span><span style=\"font-size: 14px; line-height: 1.4em;\">10,10 9<br /></span><span style=\"font-size: 14px; line-height: 1.4em;\">etc.</span></pre>",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    }
  ]
}