{
  "fetched_at": "2026-10-20T04:01:38Z",
  "source_url": "https://www.kaggle.com/competitions/bank-direct-marketing/data",
  "pages": [
    {
      "name": "rules",
      "content": "\r\n\t<!-- Begin Base Rules -->\r\n    <h3>One account per participant</h3>\r\n    <p>You cannot sign up to Kaggle from multiple accounts and therefore you cannot submit from multiple accounts.</p>\r\n    <h3>No private sharing outside teams</h3>\r\n    <p>\r\n        Privately sharing code or data outside of teams is not permitted.\r\n        It's okay to share code if made available to all participants on the forums.\r\n    </p>\r\n    <h3>Team Mergers</h3>\r\n    <p>Team mergers are not allowed in this competition.</p>\r\n\r\n    <h3>Team Limits</h3>\r\n    <p>There is no maximum team size.</p>\r\n    <h3>Submission Limits</h3>\r\n    <p>You may submit a maximum of 2 entries per day.</p>\r\n    <p>You may select up to 2 final submissions for judging.</p>\r\n    <h3>Competition Timeline</h3>\r\n    <p>Start Date: <strong>TBA</strong></p>\r\n    <p>Merger Deadline: <strong>None</strong></p>\r\n    <p>Entry Deadline: <strong>None</strong></p>\r\n    <p>End Date: <strong>2/1/2014 12:00 AM UTC</strong></p>\r\n\t<!-- End Base Rules -->\r\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": "## File descriptions\n\n* **train.csv** - the training set\n* **test.csv** - the test set\n* **sample_submission.csv** - a sample submission in the correct format.\n\n## Data fields\n\n### Input attributes:\n\n* **age** - age of client.\n* **job** - type of job (categorical: `admin`, `blue-collar`, `entrepreneur`, `housemaid`, `management`, `retired`, `self-employed`, `services`, `student`, `technician`, `unemployed`, `unknown`)\n* **marital** - marital status (categorical: `divorced`, `married`, `single`,`unknown`; note: `divorced` means divorced or widowed)\n* **education** - (categorical: `basic.4y`,`basic.6y`,`basic.9y`,`high.school`,`illiterate`,`professional.course`,`university.degree`,`unknown`)\n* **default** - has credit in default? (categorical: `no`,`yes`,`unknown`)\n* **housing** - has housing loan? (categorical: `no`,`yes`,`unknown`)\n* **loan** - has personal loan? (categorical: `no`,`yes`,`unknown`)\n* **contact** - contact communication type (categorical: `cellular`,`telephone`) \n* **month** - last contact month of year (categorical: `jan`, `feb`, `mar`, ..., `nov`, `dec`)\n* **day_of_week** - last contact day of the week (categorical: `mon`,`tue`,`wed`,`thu`,`fri`)\n* **duration** - last contact duration, in seconds (numeric). Important note: this attribute highly affects the output target (e.g., if duration=0 then y=`no`). Yet, the duration is not known before a call is performed. Also, after the end of the call y is obviously known. Thus, this input should only be included for benchmark purposes and should be discarded if the intention is to have a realistic predictive model.\n* **campaign** - number of contacts performed during this campaign and for this client (numeric, includes last contact)\n* **pdays** - number of days that passed by after the client was last contacted from a previous campaign (numeric; 999 means client was not previously contacted)\n* **previous** - number of contacts performed before this campaign and for this client (numeric)\n* **poutcome** - outcome of the previous marketing campaign (categorical: `failure`,`nonexistent`,`success`)\n* **emp.var.rate** - employment variation rate - quarterly indicator (numeric)\n* **cons.price.idx** - consumer price index - monthly indicator (numeric) \n* **cons.conf.idx** - consumer confidence index - monthly indicator (numeric) \n* **euribor3m** - euribor 3 month rate - daily indicator (numeric)\n* **nr.employed** number of employees - quarterly indicator (numeric)\n\n## Output variable:\n\n`target` - has the client subscribed a term deposit? (binary: 1 or 0)",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Description",
      "content": "**Goal: Upload a submission that beats the benchmark.**\n\nIf you need help getting started, make sure you check out Lesson 4 from 00:45 onward, which covers the Rossman prediction problem - this challenge shares a few similarities.\n\n## Tips\n\n1\\. If you use the `ColumnarModelData.get_learner()` learner constructor, be sure to ensure the y_range is between 0 and 1: `md.get_learner(..., y_range=[0, 1])`.\n\n2\\. The competition metric uses [ROC AUC](https://developers.google.com/machine-learning/crash-course/classification/roc-and-auc) score. If you want to see the metric while training, you'll need to create a simple custom metric:\n\n\n    from sklearn.metrics import roc_auc_score\n    \n    def roc_auc_metric(preds, targs):\n        return roc_auc_score(targs.float(), preds.float())\n    \n    learner.fit(lr, 5, metrics=[roc_auc_metric])\n\n\n## Dataset Citation\n\n[Moro et al., 2014] S. Moro, P. Cortez and P. Rita. A Data-Driven Approach to Predict the Success of Bank Telemarketing. Decision Support Systems, Elsevier, 62:22-31, June 2014\n\nThanks to [UCI](https://archive.ics.uci.edu/ml/datasets/bank+marketing)",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    },
    {
      "name": "Evaluation",
      "content": "Submissions are evaluated on [area under the ROC curve](https://en.wikipedia.org/wiki/Receiver_operating_characteristic) between the predicted probability and the observed target\n\nSubmission File\nFor each `id` in the test set, you must predict a probability for the `target` variable. The file should contain a header and have the following format:\n\n    id,target\n    0,0.4\n    1,0.5\n    2,0.2\n\netc.\n\n\n  [1]: http://s",
      "isPublished": false,
      "hasIsPublished": false,
      "postTitle": "",
      "hasPostTitle": false,
      "mimeType": "",
      "hasMimeType": false
    }
  ]
}