{
  "id": 23733,
  "title": "Cross validation",
  "url": "/competitions/data-science-hep-triggers/discussion/23733",
  "author_name": "",
  "post_date": "2016-09-17T21:30:11.837Z",
  "votes": 1,
  "comment_count": 2,
  "views": 287,
  "content": "<p>baseline notebook &#1085;&#1077; &#1088;&#1072;&#1073;&#1086;&#1090;&#1072;&#1077;&#1090;, &#1090;.&#1082;. &#1085;&#1077; &#1087;&#1088;&#1080;&#1082;&#1083;&#1072;&#1076;&#1099;&#1074;&#1072;&#1077;&#1090;&#1089;&#1103; &#1084;&#1086;&#1076;&#1091;&#1083;&#1100; rep.utils. &#1050; &#1090;&#1086;&#1084;&#1091; &#1078;&#1077; &#1090;&#1072;&#1084; &#1087;&#1088;&#1086;&#1080;&#1079;&#1074;&#1086;&#1076;&#1080;&#1090;&#1089;&#1103; &#1074;&#1072;&#1083;&#1080;&#1076;&#1072;&#1094;&#1080;&#1103; &#1087;&#1086; &#1086;&#1090;&#1083;&#1086;&#1078;&#1077;&#1085;&#1085;&#1086;&#1081; &#1074;&#1099;&#1073;&#1086;&#1088;&#1082;&#1077;, &#1095;&#1090;&#1086; &#1085;&#1077; &#1074;&#1089;&#1077;&#1075;&#1076;&#1072; &#1087;&#1086;&#1082;&#1072;&#1079;&#1099;&#1074;&#1072;&#1077;&#1090; &#1076;&#1077;&#1081;&#1089;&#1090;&#1074;&#1080;&#1090;&#1077;&#1083;&#1100;&#1085;&#1086;&#1089;&#1090;&#1100;. &#1052;&#1086;&#1078;&#1077;&#1090; &#1082;&#1086;&#1084;&#1091; &#1087;&#1088;&#1080;&#1075;&#1086;&#1076;&#1080;&#1090;&#1089;&#1103; &#1076;&#1083;&#1103; cross validation:</p>\n\n<pre><code>def create_cv(id_event, n_folds=5):\n    id_unique = id_event.unique()\n    size_fold = int(len(id_unique)/n_folds)\n    idx_cv = []\n\n    for i in range(n_folds):\n        mask = id_event.isin(id_unique[i*size_fold : (i+1)*size_fold])\n        idx_train = id_event.index[~mask].values\n        idx_test = id_event.index[mask].values\n        idx_cv.append([idx_train, idx_test])\n\n    return idx_cv     \n</code></pre>\n\n<p>id_event &#1076;&#1086;&#1083;&#1078;&#1077;&#1085; &#1073;&#1099;&#1090;&#1100; &#1092;&#1086;&#1088;&#1084;&#1072;&#1090;&#1072; pandas Series. &#1053;&#1072;&#1087;&#1088;&#1080;&#1084;&#1077;&#1088; &#1080;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1091;&#1103; &#1076;&#1072;&#1085;&#1085;&#1099;&#1077;, &#1087;&#1086;&#1076;&#1075;&#1088;&#1091;&#1078;&#1077;&#1085;&#1085;&#1099;&#1077; &#1074; baseline:</p>\n\n<pre><code>cv = create_cv(data.EventID, n_folds=3)\n</code></pre>",
  "messages": [
    {
      "id": "135881",
      "postDate": "09/17/2016 21:30:11",
      "content": "<p>baseline notebook &#1085;&#1077; &#1088;&#1072;&#1073;&#1086;&#1090;&#1072;&#1077;&#1090;, &#1090;.&#1082;. &#1085;&#1077; &#1087;&#1088;&#1080;&#1082;&#1083;&#1072;&#1076;&#1099;&#1074;&#1072;&#1077;&#1090;&#1089;&#1103; &#1084;&#1086;&#1076;&#1091;&#1083;&#1100; rep.utils. &#1050; &#1090;&#1086;&#1084;&#1091; &#1078;&#1077; &#1090;&#1072;&#1084; &#1087;&#1088;&#1086;&#1080;&#1079;&#1074;&#1086;&#1076;&#1080;&#1090;&#1089;&#1103; &#1074;&#1072;&#1083;&#1080;&#1076;&#1072;&#1094;&#1080;&#1103; &#1087;&#1086; &#1086;&#1090;&#1083;&#1086;&#1078;&#1077;&#1085;&#1085;&#1086;&#1081; &#1074;&#1099;&#1073;&#1086;&#1088;&#1082;&#1077;, &#1095;&#1090;&#1086; &#1085;&#1077; &#1074;&#1089;&#1077;&#1075;&#1076;&#1072; &#1087;&#1086;&#1082;&#1072;&#1079;&#1099;&#1074;&#1072;&#1077;&#1090; &#1076;&#1077;&#1081;&#1089;&#1090;&#1074;&#1080;&#1090;&#1077;&#1083;&#1100;&#1085;&#1086;&#1089;&#1090;&#1100;. &#1052;&#1086;&#1078;&#1077;&#1090; &#1082;&#1086;&#1084;&#1091; &#1087;&#1088;&#1080;&#1075;&#1086;&#1076;&#1080;&#1090;&#1089;&#1103; &#1076;&#1083;&#1103; cross validation:</p>\n\n<pre><code>def create_cv(id_event, n_folds=5):\n    id_unique = id_event.unique()\n    size_fold = int(len(id_unique)/n_folds)\n    idx_cv = []\n\n    for i in range(n_folds):\n        mask = id_event.isin(id_unique[i*size_fold : (i+1)*size_fold])\n        idx_train = id_event.index[~mask].values\n        idx_test = id_event.index[mask].values\n        idx_cv.append([idx_train, idx_test])\n\n    return idx_cv     \n</code></pre>\n\n<p>id_event &#1076;&#1086;&#1083;&#1078;&#1077;&#1085; &#1073;&#1099;&#1090;&#1100; &#1092;&#1086;&#1088;&#1084;&#1072;&#1090;&#1072; pandas Series. &#1053;&#1072;&#1087;&#1088;&#1080;&#1084;&#1077;&#1088; &#1080;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1091;&#1103; &#1076;&#1072;&#1085;&#1085;&#1099;&#1077;, &#1087;&#1086;&#1076;&#1075;&#1088;&#1091;&#1078;&#1077;&#1085;&#1085;&#1099;&#1077; &#1074; baseline:</p>\n\n<pre><code>cv = create_cv(data.EventID, n_folds=3)\n</code></pre>",
      "rawMarkdown": "baseline notebook не работает, т.к. не прикладывается модуль rep.utils. К тому же там производится валидация по отложенной выборке, что не всегда показывает действительность. Может кому пригодится для cross validation:\r\n\r\n    def create_cv(id_event, n_folds=5):\r\n        id_unique = id_event.unique()\r\n        size_fold = int(len(id_unique)/n_folds)\r\n        idx_cv = []\r\n        \r\n        for i in range(n_folds):\r\n            mask = id_event.isin(id_unique[i*size_fold : (i+1)*size_fold])\r\n            idx_train = id_event.index[~mask].values\r\n            idx_test = id_event.index[mask].values\r\n            idx_cv.append([idx_train, idx_test])\r\n            \r\n        return idx_cv     \r\n\r\nid_event должен быть формата pandas Series. Например используя данные, подгруженные в baseline:\r\n\r\n    cv = create_cv(data.EventID, n_folds=3)",
      "votes": null
    },
    {
      "id": "135982",
      "postDate": "09/19/2016 04:05:26",
      "content": "<p>&#1052;&#1086;&#1076;&#1091;&#1083;&#1100; rep.utils &#1084;&#1086;&#1078;&#1085;&#1086; &#1074;&#1079;&#1103;&#1090;&#1100; &#1085;&#1072; github <a href=\"https://github.com/yandex/rep/blob/master/rep/utils.py\">https://github.com/yandex/rep/blob/master/rep/utils.py</a></p>",
      "rawMarkdown": "Модуль rep.utils можно взять на github https://github.com/yandex/rep/blob/master/rep/utils.py",
      "votes": null
    },
    {
      "id": "135992",
      "postDate": "09/19/2016 05:49:56",
      "content": "<blockquote>\n  <p>&#1052;&#1086;&#1076;&#1091;&#1083;&#1100; rep.utils &#1084;&#1086;&#1078;&#1085;&#1086; &#1074;&#1079;&#1103;&#1090;&#1100; &#1085;&#1072; github <a href=\"https://github.com/yandex/rep/blob/master/rep/utils.py\">https://github.com/yandex/rep/blob/master/rep/utils.py</a></p>\n</blockquote>\n\n<p>&#1052;&#1086;&#1078;&#1085;&#1086; &#1087;&#1088;&#1086;&#1097;&#1077;: </p>\n\n<pre><code>pip install rep --no-dependencies\n</code></pre>",
      "rawMarkdown": "> Модуль rep.utils можно взять на github https://github.com/yandex/rep/blob/master/rep/utils.py\r\n\r\nМожно проще: \r\n\r\n    pip install rep --no-dependencies",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 135982,
      "author_name": "sibirtsev",
      "author_url": "",
      "post_date": "09/19/2016 04:05:26",
      "content": "<p>&#1052;&#1086;&#1076;&#1091;&#1083;&#1100; rep.utils &#1084;&#1086;&#1078;&#1085;&#1086; &#1074;&#1079;&#1103;&#1090;&#1100; &#1085;&#1072; github <a href=\"https://github.com/yandex/rep/blob/master/rep/utils.py\">https://github.com/yandex/rep/blob/master/rep/utils.py</a></p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 135992,
      "author_name": "alexrogozhnikov",
      "author_url": "",
      "post_date": "09/19/2016 05:49:56",
      "content": "<blockquote>\n  <p>&#1052;&#1086;&#1076;&#1091;&#1083;&#1100; rep.utils &#1084;&#1086;&#1078;&#1085;&#1086; &#1074;&#1079;&#1103;&#1090;&#1100; &#1085;&#1072; github <a href=\"https://github.com/yandex/rep/blob/master/rep/utils.py\">https://github.com/yandex/rep/blob/master/rep/utils.py</a></p>\n</blockquote>\n\n<p>&#1052;&#1086;&#1078;&#1085;&#1086; &#1087;&#1088;&#1086;&#1097;&#1077;: </p>\n\n<pre><code>pip install rep --no-dependencies\n</code></pre>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "135881": "baseline notebook не работает, т.к. не прикладывается модуль rep.utils. К тому же там производится валидация по отложенной выборке, что не всегда показывает действительность. Может кому пригодится для cross validation:\r\n\r\n    def create_cv(id_event, n_folds=5):\r\n        id_unique = id_event.unique()\r\n        size_fold = int(len(id_unique)/n_folds)\r\n        idx_cv = []\r\n        \r\n        for i in range(n_folds):\r\n            mask = id_event.isin(id_unique[i*size_fold : (i+1)*size_fold])\r\n            idx_train = id_event.index[~mask].values\r\n            idx_test = id_event.index[mask].values\r\n            idx_cv.append([idx_train, idx_test])\r\n            \r\n        return idx_cv     \r\n\r\nid_event должен быть формата pandas Series. Например используя данные, подгруженные в baseline:\r\n\r\n    cv = create_cv(data.EventID, n_folds=3)",
    "135982": "Модуль rep.utils можно взять на github https://github.com/yandex/rep/blob/master/rep/utils.py",
    "135992": "> Модуль rep.utils можно взять на github https://github.com/yandex/rep/blob/master/rep/utils.py\r\n\r\nМожно проще: \r\n\r\n    pip install rep --no-dependencies"
  },
  "source": "meta"
}